#include "app.H"
#include "kernel.H"
#include <string.h>
#include "module.h"


#define SC7A20_ADDR 	0x32  // SC7A20的I2C地址
#define Q15_SHIFT		15

#define cAngle0			0	   // 0°
#define cAngle90		9000   // 90°
#define cAngle180		18000  // 180°
#define cAngle270		27000  // 270°
#define cAngle360		36000  // 360°


AccelData AccelSeat;
AccelData AccelStBk;
MovingAvgFilter_t AvgFilterSeat;
MovingAvgFilter_t AvgFilterStbk;



// 反正切表（度数×100，uint16_t存储）
const uint16_t atan_deg_x100[129] = 
{
    0,      // atan(0/128) = 0°
    45,     // atan(1/128) ≈ 0.447653°
    90,     // atan(2/128) ≈ 0.895221°
    134,    // atan(3/128) ≈ 1.342608°
    179,    // atan(4/128) ≈ 1.789681°
    224,    // atan(5/128) ≈ 2.236536°
    268,    // atan(6/128) ≈ 2.683281°
    312,    // atan(7/128) ≈ 3.129920°
    356,    // atan(8/128) ≈ 3.576455°
    400,    // atan(9/128) ≈ 4.022888°
    443,    // atan(10/128) ≈ 4.469221°
    487,    // atan(11/128) ≈ 4.915458°
    530,    // atan(12/128) ≈ 5.361600°
    573,    // atan(13/128) ≈ 5.807650°
    616,    // atan(14/128) ≈ 6.253609°
    658,    // atan(15/128) ≈ 6.699481°
    701,    // atan(16/128) ≈ 7.145267°
    743,    // atan(17/128) ≈ 7.590970°
    785,    // atan(18/128) ≈ 8.036592°
    827,    // atan(19/128) ≈ 8.482134°
    868,    // atan(20/128) ≈ 8.927599°
    909,    // atan(21/128) ≈ 9.372988°
    950,    // atan(22/128) ≈ 9.818305°
    991,    // atan(23/128) ≈ 10.263550°
    1032,   // atan(24/128) ≈ 10.708726°
    1072,   // atan(25/128) ≈ 11.153834°
    1112,   // atan(26/128) ≈ 11.598878°
    1152,   // atan(27/128) ≈ 12.043858°
    1191,   // atan(28/128) ≈ 12.488777°
    1231,   // atan(29/128) ≈ 12.933637°
    1270,   // atan(30/128) ≈ 13.378440°
    1309,   // atan(31/128) ≈ 13.823188°
    1347,   // atan(32/128) ≈ 14.267883°
    1386,   // atan(33/128) ≈ 14.712527°
    1424,   // atan(34/128) ≈ 15.157121°
    1462,   // atan(35/128) ≈ 15.601669°
    1499,   // atan(36/128) ≈ 16.046171°
    1537,   // atan(37/128) ≈ 16.490630°
    1574,   // atan(38/128) ≈ 16.935048°
    1611,   // atan(39/128) ≈ 17.379426°
    1648,   // atan(40/128) ≈ 17.823767°
    1684,   // atan(41/128) ≈ 18.268073°
    1720,   // atan(42/128) ≈ 18.712345°
    1756,   // atan(43/128) ≈ 19.156585°
    1792,   // atan(44/128) ≈ 19.600795°
    1828,   // atan(45/128) ≈ 20.044977°
    1863,   // atan(46/128) ≈ 20.489133°
    1898,   // atan(47/128) ≈ 20.933265°
    1933,   // atan(48/128) ≈ 21.377374°
    1968,   // atan(49/128) ≈ 21.821462°
    2002,   // atan(50/128) ≈ 22.265532°
    2036,   // atan(51/128) ≈ 22.709585°
    2070,   // atan(52/128) ≈ 23.153623°
    2104,   // atan(53/128) ≈ 23.597647°
    2138,   // atan(54/128) ≈ 24.041660°
    2171,   // atan(55/128) ≈ 24.485663°
    2204,   // atan(56/128) ≈ 24.929659°
    2237,   // atan(57/128) ≈ 25.373649°
    2270,   // atan(58/128) ≈ 25.817635°
    2302,   // atan(59/128) ≈ 26.261619°
    2335,   // atan(60/128) ≈ 26.705603°
    2367,   // atan(61/128) ≈ 27.149588°
    2399,   // atan(62/128) ≈ 27.593577°
    2430,   // atan(63/128) ≈ 28.037571°
    2462,   // atan(64/128) ≈ 28.481572°
    2493,   // atan(65/128) ≈ 28.925582°
    2524,   // atan(66/128) ≈ 29.369603°
    2555,   // atan(67/128) ≈ 29.813636°
    2586,   // atan(68/128) ≈ 30.257683°
    2616,   // atan(69/128) ≈ 30.701746°
    2647,   // atan(70/128) ≈ 31.145827°
    2677,   // atan(71/128) ≈ 31.589928°
    2707,   // atan(72/128) ≈ 32.034050°
    2736,   // atan(73/128) ≈ 32.478196°
    2766,   // atan(74/128) ≈ 32.922367°
    2795,   // atan(75/128) ≈ 33.366565°
    2824,   // atan(76/128) ≈ 33.810792°
    2853,   // atan(77/128) ≈ 34.255050°
    2882,   // atan(78/128) ≈ 34.699341°
    2911,   // atan(79/128) ≈ 35.143667°
    2939,   // atan(80/128) ≈ 35.588029°
    2967,   // atan(81/128) ≈ 36.032430°
    2995,   // atan(82/128) ≈ 36.476871°
    3023,   // atan(83/128) ≈ 36.921355°
    3051,   // atan(84/128) ≈ 37.365883°
    3078,   // atan(85/128) ≈ 37.810458°
    3106,   // atan(86/128) ≈ 38.255081°
    3133,   // atan(87/128) ≈ 38.699755°
    3160,   // atan(88/128) ≈ 39.144481°
    3187,   // atan(89/128) ≈ 39.589262°
    3213,   // atan(90/128) ≈ 40.034100°
    3240,   // atan(91/128) ≈ 40.478996°
    3266,   // atan(92/128) ≈ 40.923954°
    3292,   // atan(93/128) ≈ 41.368975°
    3318,   // atan(94/128) ≈ 41.814061°
    3344,   // atan(95/128) ≈ 42.259215°
    3370,   // atan(96/128) ≈ 42.704439°
    3395,   // atan(97/128) ≈ 43.149735°
    3420,   // atan(98/128) ≈ 43.595105°
    3445,   // atan(99/128) ≈ 44.040552°
    3470,   // atan(100/128) ≈ 44.486078°
    3495,   // atan(101/128) ≈ 44.931685°
    3520,   // atan(102/128) ≈ 45.377376°
    3544,   // atan(103/128) ≈ 45.823153°
    3569,   // atan(104/128) ≈ 46.269018°
    3593,   // atan(105/128) ≈ 46.714974°
    3617,   // atan(106/128) ≈ 47.161024°
    3641,   // atan(107/128) ≈ 47.607169°
    3665,   // atan(108/128) ≈ 48.053413°
    3688,   // atan(109/128) ≈ 48.499758°
    3712,   // atan(110/128) ≈ 48.946207°
    3735,   // atan(111/128) ≈ 49.392762°
    3758,   // atan(112/128) ≈ 49.839426°
    3781,   // atan(113/128) ≈ 50.286202°
    3804,   // atan(114/128) ≈ 50.733093°
    3827,   // atan(115/128) ≈ 51.180101°
    3849,   // atan(116/128) ≈ 51.627230°
    3872,   // atan(117/128) ≈ 52.074482°
    3894,   // atan(118/128) ≈ 52.521860°
    3916,   // atan(119/128) ≈ 52.969368°
    3938,   // atan(120/128) ≈ 53.417008°
    3960,   // atan(121/128) ≈ 53.864784°
    3982,   // atan(122/128) ≈ 54.312699°
    4003,   // atan(123/128) ≈ 54.760756°
    4025,   // atan(124/128) ≈ 55.208958°
    4046,   // atan(125/128) ≈ 55.657309°
    4067,   // atan(126/128) ≈ 56.105812°
    4088,   // atan(127/128) ≈ 56.554471°
    4500    // atan(128/128) = 45°
};














			
			





